43

» WarCraft 3 / Не получать опыта за героя

В триггере, где происходит старт карты (не загрузка, а хотя бы 0,01 сек. игрового времени), ставим функцию "Герой - Make (Нужный игрок) Heroes gain 0.00% experience from future kills"
Потом через отдельный триггер выставляешь столько сколько нужно.
43

» WarCraft 3 / Лив игрока при игре в мултиплеере

ApoloZ2:
в цикле он проверяет условие...если условия дают ИСТИНУ то он идет дальше и в конце создается юнит...посл этого он выходит оттуда и отключает триггер
дискорд
discord.gg/3Dgu5rG
закрывай вопрос, там решим, только как ты мне покажешь экран?
43

» WarCraft 3 / Лив игрока при игре в мултиплеере

ApoloZ2:
только в другом триггере я создаю кнопку и потом надпись высвечивается...а тут по идее тоже самое
нужно чтобы условие сработало и потом все остальное
смотри Uде расположен TURN OFF (THIS TRIGGER)
блин, скайп есть? долго сложно объяснить и плохо видно что там у тебя за гемор
43

» WarCraft 3 / Лив игрока при игре в мултиплеере

ApoloZ2:
этим и занимаюсь сейчас
я написал в другом триггере чтото похожее вот теперь поставлю такие же условия но измененные
вот как выглядит сейчас
Это что за триггер? зачем тебе два одинаковых действия?)
43

» WarCraft 3 / Лив игрока при игре в мултиплеере

ApoloZ2, мда... хз, попробуй включить изначально триггер. А в таблице (в самом триггере) нужно делать проверку, вышел ли игрок или нет, и только тогда добавлять строчку

и всё же попробуй отряд сделать через триггер плауер
43

» WarCraft 3 / Лив игрока при игре в мултиплеере

ApoloZ2:
да но...здесь не создается юнит
он просто проверяет кто вышел
мне нужно одновременно создать юнит и проверить когда он вышел из игры
в тесте, когда игрок выходит, что работает?
и кстати как проверяешь?
43

» WarCraft 3 / Лив игрока при игре в мултиплеере

ApoloZ2:
это я заметил...
не работает...
не хочет работать
может из за отряда, у меня так.
p.s.: на условие не смотри оно ненужно
Загруженные файлы
43

» WarCraft 3 / Лив игрока при игре в мултиплеере

да, только текст будет писать, к примеру: N7 Molot Вышел из игры
напиши с маленькой "вышел"
43

» WarCraft 3 / Как сделать способность?

8gabriel8:
molot39:
Уровня два, на каждом по 3 заряда. А что баф не нужен? Про иммунитет, да, придется подумать...
Я видел один. А баф как раз связан с его отменой при наложении неуязвимости, например.
Замени способность "Кровожадность" на способность предмета "Перчатки скорости", если я не ошибаюсь, то иконка не будет отображаться в панели управления, а заряды можно попробовать через уровни сделать или делать копии.
43

» WarCraft 3 / Как сделать способность?

вот тебе и благодарность, даже желание отпало помогать... лучше бы систему вознаграждения продолжал переписывать...
8gabriel8:
molot39, только у способности один уровень, ускорение атаки делается за счёт наложения заклинания, бафф которого виден, но там главное правильно поставить описание баффу, однако это страшно при иммунитете к магии, либо развеивании. По идее иммунитет к магии преодолим, если будет стоить заклинание дамми 0 маны, а вот развеивание не знаю. Просто герой задуман как антимаг, а у магов всякие развеивания очень вероятны...
Уровня два, на каждом по 3 заряда. А что баф не нужен? Про иммунитет, да, придется подумать... Или потестить, а лучше иммунитет или скидку бафов переделать так, что бы слитали отрицательные бафы.

А это вообще камень в огород, думайте о последствиях прежде чем писать!
quq_CCCP:
molot39, да что вы говорите, язык не отсох?
Есть хак на память, есть внезапно способность рунных браслетов, которая нам поможет отличить физический от магического урона.
Не надо плести чепуху если вы не разбираетесь.
Это не отлов типа урона, а одно из решений.
Проверка на бафф не есть хорошо для героя, - это орб который внезапно не дружит с другими орбами.
Тут вообще про что?
Особенно порадовал ваш дико ядреный костыль с кровожадностью, оно если что не стак, а еще и рассеиваться 100500 диспелами... Не кастуется на неуязвимых, маг имунных, ну кароче явно не для такой пассивки.
Стакается, тестим, (так и знал что нужно скорость атаки выдать). Это наработка, а не полная копия способности, на худой конец заменяем кровожадность на способность от предмета "Перчатки скорости" - и всё!
Код как всегда отпадный, так и хочется прыгнуть в окно...
Прыгай, я не против...
На будущее: не нужно прям так унижать наработку, это не копия (повторюсь), есть недочеты тактично разъясни, лично мне пофиг что там кто думает, но если что то не устравивает предлагаем свои поправки, а не макаем автора в фекалии
43

» WarCraft 3 / Как сделать способность?

Тип урона отследить не возможно, единственно если прям так хочется что бы не выдавался стак от жара, то в условии ставь блок на баф. Вот наработка
Загруженные файлы
43

» WarCraft 3 / Как сделать способность?

8gabriel8:
Он имеет ввиду, чтобы ты проверил способность вместе с предметом Огненный плащ или способностью Жар преисподней, не будет ли это считаться атакой юнита, как будет работать, когда много юнитов к тебе подбегает, ведь часть из них как бы будет атакована не в первый раз, а часть в первый одновременно, если эффект будет считаться атакой, естественно.
а... понял
43

» WarCraft 3 / Как сделать способность?

Borodach:
molot39, Продебаж код на количество стаков... к примеру с "огненым плащем" огруженным несколькими юнитами
чё?
не отвлекайте, я восстанавливаю болванку с нуля, удалил старую
43

» WarCraft 3 / Как сделать способность?

могу даже болванку скинуть, только малек доработаю болванку. В самом проекте исправил, а в болванке нет=)
43

» WarCraft 3 / Как сделать способность?

8gabriel8:
quq_CCCP, а мне другую реализацию скинули:
function Trig_Fervor_Conditions takes nothing returns boolean
    return GetUnitAbilityLevel(GetAttacker(),'A06C') > 0 and not IsUnitType(GetTriggerUnit(),UNIT_TYPE_STRUCTURE)
endfunction

function Trig_Fervor_Tick takes nothing returns nothing
    local unit u
    local unit targ
    local trigger t = GetTriggeringTrigger()
    local hashtable gc = udg_HashCache
    local integer s = GetHandleId(t)
    local integer lvl = GetUnitAbilityLevel(u,'A06C')
    local integer c = 0

    if GetTriggerEventId() == EVENT_UNIT_DAMAGED then
        set u = LoadUnitHandle(gc,s,1)

        if GetEventDamageSource() == u then
            set targ = GetTriggerUnit()
            set c = GetUnitAbilityLevel(u,'A08T')

            if targ != LoadUnitHandle(gc,GetHandleId(u),StringHash("trollfervor")) then
                set c = R2I(c/2)
                call SaveUnitHandle(gc,GetHandleId(u),StringHash("trollfervor"),targ)
            else
                set c = c+1
                if c > lvl+1 then
                    set c = lvl+1
                endif
            endif
            call SetUnitAbilityLevel(u,'A08T',c)
            set targ = null
        endif
        set u = null
    endif
    call TriggerRemoveAction(t,LoadTriggerActionHandle(gc,s,2))
    call FlushChildHashtable(gc,s)
    call KillTrigger(t)
    set t = null
    set gc = null
endfunction

function Trig_Fervor takes nothing returns nothing
    local unit u = GetAttacker()
    local unit targ = GetTriggerUnit()
    local trigger t = CreateTrigger()
    local integer s = GetHandleId(t)
    local hashtable gc = udg_HashCache
    local triggeraction ta
    if GetUnitAbilityLevel(u,'A08T') == 0 then
        call UnitAddAbility(u,'A08T')
    endif
    call SaveUnitHandle(gc,s,1,u)
    call TriggerRegisterUnitEvent(t,targ,EVENT_UNIT_DAMAGED)
    call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_ISSUED_ORDER)
    call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_ISSUED_POINT_ORDER)
    call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_ISSUED_TARGET_ORDER)
    call TriggerRegisterTimerEvent(t,2.5,false)
    set ta = TriggerAddAction(t,function Trig_Fervor_Tick)
    call SaveTriggerActionHandle(gc,s,2,ta)
    set u = null
    set targ = null
    set t = null
    set gc = null
    set ta = null
endfunction

function InitTrig_Fervor takes nothing returns nothing
    set gg_trg_Fervor = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Fervor, EVENT_PLAYER_UNIT_ATTACKED )
    call TriggerAddCondition( gg_trg_Fervor, Condition( function Trig_Fervor_Conditions ) )
    call TriggerAddAction( gg_trg_Fervor, function Trig_Fervor)
endfunction
И в инициализации создаётся хеш-таблица udg_HashCache.
И что совсем ни как без хеша?
43

» WarCraft 3 / Как сделать способность?

quq_CCCP:
molot39, уже не первый раз такое слышу, но не дале, баги, работает ваще не так как описано в примере и так далее...
Хочешь похвастаться - код в студию
Думаю это не к месту, скоро будет новая версия робот сити, там будет реализация.
43

» WarCraft 3 / Как сделать способность?

8gabriel8:
molot39, ещё один гениальный коммент?
Чего-то нынче вопросы и ответы хгм тухнут, уже человек со стороны просто скинул мне ссылку на реализацию способностей тролля в DotA:
лол
quq_CCCP:
8gabriel8, Ты зря надеяшся слепить в 3 гуи дейсвия с вейтами такую способность, либо из опен доты бери либо пили сам дикими костылями, отлов физ урона на гуи то еще удовольствие не говоря про хештаблицу и прочее.
А я сделал, только не на скорость, на gui, всё работает как часы и без всяких заморочек
43

» WarCraft 3 / Как сделать способность?

...боже...
Прочитал вопрос и ответы к нему, понять не могу в чём проблема то запилить такую способность? Всё просто как дважды два, только нужно делать через отлов, так как если атака будет не удачной, то будет бредово как то... Прирост можно сделать почти через любую способность (кроме предмет (можно, но придется делать много копий для прироста)). Даже можно лучше сделать чем в доте.
43

» WarCraft 3 / Нужна модель? - Вам сюда!

кто может сжать модель, к примеру из вова сделать модель для вара? в ЛС.